﻿#pragma once
//通讯录的结构的定义以及通讯录方法的声明
#define NAME_MAX 20
#define GENDER_MAX 10
#define TEL_MAX 12
#define ADDR_MAX 50
#include<string.h>

typedef struct PersonInfo
{
	char name[NAME_MAX]; //姓名
	char gender[GENDER_MAX]; //性别
	int age; //年龄
	char tel[TEL_MAX]; //电话
	char addr[ADDR_MAX]; //住址
}PeoInfo;

//核心：要用到顺序表的相关的方法，对通讯录的操作实际上就是对顺序表的操作
// 为了方便后面的操作，我们给顺序表起个别名为contact
//前置声明
//typedef SL contact;//这样写看似没有什么问题，但是你并编译之后就会发现一堆的报错
//原因在于，此操作为前置声明，就是在还未定义该结构之前，但是我要提前使用该声明就可以使用。
//适用场景为：多文件编写，头文件之间包含关系。
typedef struct SeqList contact;

//初始化通讯录
void InitContact(contact* con);
//添加通讯录数据
void AddContact(contact* con);
//删除通讯录数据
void DelContact(contact* con);
//展⽰通讯录数据
void ShowContact(contact* con);
//查找通讯录数据
void FindContact(contact* con);
//修改通讯录数据
void ModifyContact(contact* con);
//销毁通讯录数据
void DestroyContact(contact* con);
//保存通讯录数据到文件中
void SaveContact(contact* con);